package com.zcz.umengpush.service;

import com.zcz.umengpush.pojo.PushMsg;
import com.zcz.umengpush.util.SpringContextUtil;
import org.springframework.beans.factory.annotation.Autowired;

import java.util.*;

/**
 * @author 王卫帅
 */

public class UpdateTableTimer{
    @Autowired
    private PushMsgService pushMsgService;
    @Autowired
    private PushMsgHistoryService pushMsgHistoryService;
    public UpdateTableTimer(){
        this.pushMsgService= SpringContextUtil.getBean(PushMsgService.class);
        this.pushMsgHistoryService= SpringContextUtil.getBean(PushMsgHistoryService.class);
    }
    /**
     * 其他消息的定时器
     */
   public void  selecInfoList () {
       //程序运行一分钟后  开始执行 消息推送
       Date now = new Date();
       long time = 60000;
       Date sdate = new Date(now.getTime() + time);
       Timer timer = new Timer(); // 创建一个定时器
       timer.schedule(new TimerTask() {
           @Override
           public void run() {
               // 执行的内容
               List<PushMsg> pushMsgs = pushMsgService.selecInfoList();
           }
       }, sdate, 20560);//  sdate代表开始执行时间  每20秒查询一次
   }

    /**
     * 交流的定时器
     */
    public void  selectExchangeList () {
        //程序运行33秒后  开始执行 消息推送
        Date now = new Date();
        long time = 33000;
        //long time = 10000;
        Date sdate = new Date(now.getTime() + time);
        Timer timer = new Timer(); // 创建一个定时器
        timer.schedule(new TimerTask() {
            @Override
            public void run() {
                // 执行的内容
                List<PushMsg> pushMsgs = pushMsgService.selecExchangeList();
            }
        }, sdate, 3131);//  sdate代表开始执行时间  每3.1秒查询一次
    }
    /**
     * 每天2点  把push_msg表里的数据  移动到 Push_msg_history表里
     */
//    public void  move () {
//        //程序运行33秒后  开始执行 消息推送
//        Date sdate =null;
//        Date now = new Date();
//        //获取当前的小时 并转成int型
//        int yy = Integer.parseInt(String.format("%tY", now));
//        int mm = Integer.parseInt(String.format("%tm", now));
//        int dd = Integer.parseInt(String.format("%te", now));
//        int hh = Integer.parseInt(String.format("%tH", now));
//        if(hh <= 2){
//            long time = 86400000; //24小时
//            //当前时间  +24小时
//            Date ee = new Date(now.getTime() + time);
//            int yyee = Integer.parseInt(String.format("%tY", ee));
//            int mmee = Integer.parseInt(String.format("%tm", ee));
//            int ddee = Integer.parseInt(String.format("%te", ee));
//            Calendar cal = Calendar.getInstance(); // 声明一个日历类
//            cal.set(yyee, mmee, ddee, 02, 00, 00);//年  月  日  时  分  秒
//            sdate = cal.getTime(); // 将开始执行的时间赋给日期
//        }else {
//            Calendar cal = Calendar.getInstance(); // 声明一个日历类
//            cal.set(2019, 9, 30, 13, 50, 00);//年  月  日  时  分  秒
//            System.err.println(cal.getTime());
//            sdate = cal.getTime(); // 将开始执行的时间赋给日期
//        }
//        System.err.println(sdate);
//        Timer timer = new Timer(); // 创建一个定时器
//        timer.schedule(new TimerTask() {
//            @Override
//            public void run() {
//                // 执行的内容
//                System.err.println("复制 开始拉");
//                int move = pushMsgHistoryService.move();
//                System.err.println(move);
//            }
//        }, sdate, 24*60*60*1000);//  sdate代表开始执行时间  1天=24*60*60*1000=86400000毫秒查询一次
//    }


}